MongoDB এবং Python এর মধ্যে ইন্টিগ্রেশন করার জন্য PyMongo লাইব্রেরি ব্যবহৃত হয়। PyMongo হলো MongoDB এর জন্য Python ড্রাইভার, যা MongoDB ডেটাবেসের সাথে Python অ্যাপ্লিকেশন ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় সমস্ত ফাংশনালিটি প্রদান করে।
PyMongo ব্যবহার করে Python থেকে MongoDB ডেটাবেসে সংযোগ স্থাপন, ডেটা ইনসার্ট, কুয়েরি, আপডেট এবং ডিলিট অপারেশন করা সম্ভব। এটি MongoDB এর সব ধরনের ফিচারের সমর্থন করে, যেমন ডকুমেন্ট ইনসার্ট করা, ডেটাবেস তৈরি করা, শার্ডিং, ইনডেক্সিং, এবং অ্যাগ্রিগেশন অপারেশন।
1. PyMongo ইন্সটলেশন
PyMongo ইন্সটল করতে আপনি pip ব্যবহার করতে পারেন, যেটি Python এর প্যাকেজ ম্যানেজার।
pip install pymongo
এই কমান্ডটি PyMongo লাইব্রেরি ইন্সটল করবে, যার মাধ্যমে আপনি Python থেকে MongoDB এর সাথে কাজ করতে পারবেন।
2. MongoDB সার্ভারে সংযোগ স্থাপন
MongoDB তে Python অ্যাপ্লিকেশন সংযোগ করার জন্য আপনাকে প্রথমে MongoDB সার্ভারের URI ব্যবহার করে সংযোগ স্থাপন করতে হবে।
from pymongo import MongoClient
# MongoDB সার্ভারে সংযোগ স্থাপন
client = MongoClient('mongodb://localhost:27017')
# ডেটাবেস নির্বাচন
db = client['mydatabase']
এখানে MongoClient MongoDB সার্ভারে সংযোগ স্থাপন করে এবং client['mydatabase'] দ্বারা mydatabase নামক ডেটাবেস নির্বাচন করা হয়।
3. ডেটাবেস এবং কালেকশন তৈরি করা
MongoDB তে ডেটাবেস এবং কালেকশন তৈরি করতে PyMongo ব্যবহার করা হয়। MongoDB স্বয়ংক্রিয়ভাবে ডেটাবেস এবং কালেকশন তৈরি করবে যদি তারা ইতিমধ্যেই উপস্থিত না থাকে।
# ডেটাবেস তৈরি (যদি আগে না থাকে)
db = client['mydatabase']
# কালেকশন তৈরি (যদি আগে না থাকে)
collection = db['mycollection']
এখানে mydatabase হল ডেটাবেস এবং mycollection হল কালেকশন। MongoDB তে ডেটাবেস এবং কালেকশন তৈরি না থাকলে এগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাবে।
4. ডেটা ইনসার্ট করা
MongoDB তে ডেটা ইনসার্ট করার জন্য PyMongo তে বিভিন্ন পদ্ধতি রয়েছে। সবচেয়ে সাধারণ পদ্ধতি হল insert_one() এবং insert_many()।
- একটি ডকুমেন্ট ইনসার্ট করা:
# একটি ডকুমেন্ট ইনসার্ট করা
collection.insert_one({"name": "John", "age": 30, "city": "New York"})
- একাধিক ডকুমেন্ট ইনসার্ট করা:
# একাধিক ডকুমেন্ট ইনসার্ট করা
collection.insert_many([
{"name": "Alice", "age": 25, "city": "Los Angeles"},
{"name": "Bob", "age": 35, "city": "Chicago"}
])
5. ডেটা কুয়েরি করা
MongoDB তে ডেটা খোঁজার জন্য PyMongo তে find_one() এবং find() ফাংশন ব্যবহার করা হয়।
- একটি ডকুমেন্ট খোঁজা:
# একটি ডকুমেন্ট খোঁজা
document = collection.find_one({"name": "John"})
print(document)
- একাধিক ডকুমেন্ট খোঁজা:
# একাধিক ডকুমেন্ট খোঁজা
documents = collection.find({"age": {"$gte": 30}})
for doc in documents:
print(doc)
এখানে find_one() একটি ডকুমেন্ট খুঁজে বের করে এবং find() একাধিক ডকুমেন্ট রিটার্ন করে, যা একটি কিউরি অনুসারে মেলে।
6. ডেটা আপডেট করা
MongoDB তে ডেটা আপডেট করতে update_one() এবং update_many() ফাংশন ব্যবহার করা হয়।
- একটি ডকুমেন্ট আপডেট করা:
# একটি ডকুমেন্ট আপডেট করা
collection.update_one(
{"name": "John"},
{"$set": {"age": 31}}
)
এখানে update_one() একটি ডকুমেন্ট আপডেট করবে যেখানে name হল "John" এবং তার age ৩১ সেট করা হবে।
- একাধিক ডকুমেন্ট আপডেট করা:
# একাধিক ডকুমেন্ট আপডেট করা
collection.update_many(
{"age": {"$gte": 30}},
{"$set": {"status": "Active"}}
)
এখানে update_many() সমস্ত ডকুমেন্ট আপডেট করবে যেখানে age ৩০ বা তার বেশি।
7. ডেটা ডিলিট করা
MongoDB তে ডেটা মুছতে delete_one() এবং delete_many() ফাংশন ব্যবহার করা হয়।
- একটি ডকুমেন্ট ডিলিট করা:
# একটি ডকুমেন্ট ডিলিট করা
collection.delete_one({"name": "John"})
- একাধিক ডকুমেন্ট ডিলিট করা:
# একাধিক ডকুমেন্ট ডিলিট করা
collection.delete_many({"age": {"$lt": 30}})
এখানে delete_one() একটি ডকুমেন্ট মুছে ফেলবে এবং delete_many() একাধিক ডকুমেন্ট মুছে ফেলবে।
8. ইনডেক্স তৈরি করা
MongoDB তে ডেটার উপর দ্রুত অনুসন্ধান করতে ইনডেক্স তৈরি করা হয়। PyMongo তে create_index() ফাংশন ব্যবহার করে ইনডেক্স তৈরি করা যায়।
# ইনডেক্স তৈরি করা
collection.create_index([("name", pymongo.ASCENDING)])
এখানে "name" ফিল্ডে ইনডেক্স তৈরি করা হয়েছে, যাতে দ্রুত অনুসন্ধান করা যায়।
9. MongoDB তে Aggregation (অ্যাগ্রিগেশন)
MongoDB তে ডেটা বিশ্লেষণের জন্য Aggregation পিপলাইন ব্যবহার করা হয়। PyMongo তে aggregate() ফাংশন ব্যবহার করে অ্যাগ্রিগেশন পিপলাইন তৈরি করা যায়।
# অ্যাগ্রিগেশন পিপলাইন তৈরি করা
pipeline = [
{"$match": {"age": {"$gte": 30}}},
{"$group": {"_id": "$city", "total": {"$sum": 1}}}
]
result = collection.aggregate(pipeline)
for doc in result:
print(doc)
এখানে match স্টেজ ব্যবহার করে age ফিল্ডে ৩০ বা তার বেশি বয়সের ডেটা ফিল্টার করা হয়েছে এবং group স্টেজ ব্যবহার করে city অনুসারে ডেটা গ্রুপ করা হয়েছে।
সারাংশ
PyMongo লাইব্রেরি ব্যবহার করে Python এবং MongoDB এর মধ্যে সহজে ইন্টিগ্রেশন করা যায়। এটি MongoDB ডেটাবেসে সংযোগ স্থাপন, ডেটা ইনসার্ট, কুয়েরি, আপডেট, ডিলিট এবং ইনডেক্সিং করার জন্য প্রয়োজনীয় ফাংশনালিটি প্রদান করে। PyMongo এর মাধ্যমে MongoDB তে ডেটার উপর বিভিন্ন অপারেশন সহজে করা সম্ভব, যেমন ডেটা বিশ্লেষণ, অ্যাগ্রিগেশন, এবং পারফরম্যান্স অপটিমাইজেশন।